package com.yonyou.sto.modules.ims.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yonyou.sto.common.api.CommonResult;
import com.yonyou.sto.modules.ims.dto.ImsPartySelectParam;
import com.yonyou.sto.modules.ims.model.ImsParty;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author aegon
 * @since 2020-09-15
 */
public interface ImsPartyService extends IService<ImsParty> {

    /**
     * 根据组织编码名称分页查询组织
     * @param keyword
     * @param pageSize
     * @param pageNum
     * @return
     */
    Page<ImsParty> list(String keyword, Integer pageSize, Integer pageNum);

    /**
     * 新增组织
     * @param imsParty
     * @return
     */
    CommonResult create(ImsParty imsParty);

    /**
     * 删除组织
     * @param id
     * @return
     */
    boolean delete( Long id);

    /**
     * 查询该组织的单据数量
     * @param id
     * @return
     */
    int getInvoiceSize(Long id);

    /**
     * 获取选择组织列表
     * @return
     */
    List<ImsPartySelectParam> getPartySelect();

    /**
     * 导入组织
     * @param file
     * @return
     */
    CommonResult importParty(MultipartFile file);


    /**
     * 根据收款单位编码查询单位
     * @param sellerSn
     * @return
     */
    ImsParty getPartyBySellerSn(String sellerSn);

    /**
     * 根据复核人查询组织
     * @param username
     * @return
     */
    List<ImsParty> getPartyByVerifyUsername(String username);
    /**
     * 根据复核人查询组织
     * @param ids
     * @return
     */
    CommonResult getPartyByPartyId(List<Long> ids);
}
